草庐IT

MongoDB 并发

全部标签

java - Spring-Boot:并发处理多个请求

我正在使用SpringBoottobuildaRESTfulwebservice.我的IDE是EclipseOxygen。我通过Chrome每2秒发送多个HTTP获取请求,但它们被一个接一个地触发。每个请求都将等待前一个请求完成。这是我的Controller代码:@RestController@RequestMapping("/dummy")publicclassDummyController{@RequestMapping(method=RequestMethod.GET)publicResponseEntity>dummytsp(@RequestParam(value="msg",

java - 在外部修改时流式传输并发集合是否安全?

我有一个被多个线程访问的ConcurrentLinkedQueue;其中的对象是不可变的。在一个线程中,我需要数据的快照,这是通过调用stream来实现的。安全吗?我知道non-interference要求,但它似乎是在谈论对流操作之一的修改(“源可能不是并发的流管道永远不应该修改流的数据源”),不一定是外部的。此外,ConcurrentLinkedQueue是为并发访问而设计的,所以就是这样。 最佳答案 来自您提供的链接中的文档Formostdatasources,preventinginterferencemeansensuri

java - 在 MongoDB 中创建测试数据

我想为MongoDB生成测试数据。大小应为200Mb。我试过这段代码:@TestpublicvoidtestMongoDBTestDataGenerate(){MongoClientmongoClient=newMongoClient("localhost",27017);DBdb=mongoClient.getDB("development");DBCollectioncollection=db.getCollection("ssv");for(inti=0;i我如何才能生成恰好具有此大小的数据? 最佳答案 我没有得到您想要通过设

java - MongoDB 相当于 WHERE IN(1,2,...)

我有一个用户ID列表,我想从与这些用户ID之一关联的集合中提取每个文档(自然排序)。是否有与SQLWHEREIN等效的MongoDB? 最佳答案 是的,使用Mongo的$inoperator. 关于java-MongoDB相当于WHEREIN(1,2,...),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4452036/

java - 如何将spring hibernate mysql迁移到mongodb

我正在尝试将一个hibernate/mysql项目迁移到mongodb。hibernate是否支持迁移到mongodb?如果是这样,那么像一对一或一对多关系这样的ORM映射是如何翻译的? 最佳答案 Hibernate支持关系数据库,例如MySQL、PostgreSQL、Oracle、DB2和SQLServer。但是,MongoDB不是关系数据库,而是文档数据库。差异非常大:关系数据库定义表之间的关系。表格由行和列组成。这些列连同它们的任何类型或关系约束定义了所谓的模式。文档数据库定义文档集合。文档数据库不知道模式:每个文档都可以有不

java - 在 MongoDB 中打开连接的 SocketTimeout

我有一个在MongoDB上执行一些聚合的Java应用程序,但有时它只是挂起并抛出SocketTimeout异常。出现异常后,应用程序将正常运行(稍等片刻,然后它可能会再次引发异常)。我刚找到thisexplanation这似乎是一个可能的原因,但我不确定。我初始化MongoClient并保持与数据库的连接打开。我不确定这是否是个问题,我应该每次都获取数据库,然后让数据库进行垃圾收集(并关闭连接)。另一种方法可以是定期pingMongo以保持连接池“新鲜”。使用的客户端是这样的:publicclassDbClient{privatestaticMongoClientmongoClient

java - 奇怪的 Java 并发修改异常示例

这个问题在这里已经有了答案:WhyamInotgettingajava.util.ConcurrentModificationExceptioninthisexample?(10个答案)关闭4年前。如果我们这样写,就会出现并发修改异常:publicstaticvoidmain(String...args){ListlistOfBooks=newArrayList();listOfBooks.add("ProgrammingPearls");listOfBooks.add("CleanCode");listOfBooks.add("EffectiveJava");listOfBooks.

用于 MongoDB 的 Java API

根据您的经验,适用于MongoDB的良好JavaAPI是什么??我正在寻找基于注解的JavaPOJO到MongoDB资源的映射以及合适的查询抽象层。 最佳答案 试试吗非亚http://code.google.com/p/morphia/它工作得很好(没有遇到任何问题),尽管它仍然是pre-1.0。 关于用于MongoDB的JavaAPI,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

用于高并发情况的Java有界非阻塞缓冲区

基本上我需要一个数据结构来存储服务器端的临时聊天消息。应该是:有界:因为我不需要存储太多消息,客户端会每秒发送一次获取新消息的请求。我认为绑定(bind)大小应该是最大值。一秒钟内并发请求的数量。当缓冲区已满时,旧消息将被删除。适合高并发访问:我不想使用Collections.synchronizedXXXX这样的数据结构,因为在迭代过程中,如果其他线程改变了数据结构,例如添加一条消息,它会抛出一个异常,所以我必须锁定整个数据结构,实际上我并不关心客户端请求是否可以获得最后插入的消息,因为他们会在一秒钟后发送一个新请求,另一方面,写操作应该永远不会延迟。包java.util.concu

java - 并发 HashMap : checking size

ConcurrentHashmap可以解决hashmap中出现的同步问题。因此,如果我们将同步键与hashmap一起使用,添加和删除会很快。如果多个线程检查concurrentHashMap大小,那么检查hashmap大小呢?我们还需要同步关键字吗:如下所示:publicstaticsynchronizedgetSize(){returnaConcurrentHashmap.size();} 最佳答案 concurentHashMap.size()将返回调用时已知的大小,但当您使用该数字时它可能是一个陈旧的值,因为另一个线程同时添加